package com.quectel.sys.module.sys.dto;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author rananxin
 */
@Data
public class SysMenuDto implements Serializable {

    private Long id;
    /**
     * 父级菜单id
     */
    private Long parentId;
    /**
     * 端类型 1后台 2大屏
     */
    private Byte type;
    /**
     * 名称
     */
    @NotBlank
    @Length(min = 1, max = 80)
    private String name;
    /**
     * 标题
     */
    private String title;
    /**
     * 图标
     */
    private String icon;
    /**
     * url
     */
    private String url;
    /**
     * 菜单等级1顶级2子菜单3按钮
     */
    private Byte level;
    /**
     * 权限名称 如sysUser:edit
     */
    private String permission;
    /**
     * 0禁用1正常
     */
    private Byte status;
    /**
     * 排序每一个菜单下都是从0开始
     */
    private Integer sort;
    /**
     * 是否系统级菜单 0 否 1 是
     */
    @NotNull
    private Byte isSystemLevel;
    /**
     * 创建人
     */
    private String creator;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 修改人
     */
    private String editor;
    /**
     * 修改时间
     */
    private Date editTime;

    /**
     * 节点是否选中 默认不选中 角色勾选后默认选中
     */
    private boolean checked = false;

    private List<SysMenuDto> subMenus;


}
